package cn.tedu.text;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FileCopyServer {
    public static void main(String[] args) throws IOException {
        //创建服务器端，监听端口号
        ServerSocket ss=new ServerSocket(9091);

        //接收连接
        Socket s = ss.accept();

        //返回自带的字节输入流
        InputStream is = s.getInputStream();

        //先读取客户端传输过来的文件名内容的长度值
        byte length=(byte) (is.read());

        //新建数组，存储读取到的文件名内容
        byte[] bytes=new byte[length];

        //把文件名内容读取到新建数组
        is.read(bytes);

        //新建文件字节输出流对象
        FileOutputStream fos=new FileOutputStream
                ("D://javase//"+new String(bytes));


        //读取数据
        //自建缓冲区
        byte[] bs=new byte[1024*1024*10];//10MB
        int len=-1;
        while ((len=is.read(bs))!=-1){
            //把读取到数组中的内容写出到文件
            fos.write(bs,0,len);
        }

        //通知客户端数据已经接收完毕
        s.shutdownInput();

        //关流
        ss.close();
        fos.close();

    }
}
